В массиве B[n] записаны целые числа от 1 до 25. Расположить элементы
массива в порядке убывания частоты встречаемости элементов- Pascal(Паскаль)

uses crt;
var a,b,c:array[1..50]of byte;
    n,i,j,k,l,t,x,y:byte;
begin
clrscr;
randomize;
write('n=');readln(n);
writeln('Ishodnuj massiv:');
for i:=1 to n do
  begin
    a[i]:=random(25)+1;
    write(a[i],' ');
  end;
writeln;
i:=0;b[i]:=1;
while i<=n do
   begin
     i:=i+1;
     b[i]:=1;c[i]:=a[i];//сначала количество=1, запоминаем элемент из массива А
     for j:=n downto i+1 do
     if a[j]=a[i] then //если нашли такое же число, то
       begin
         b[i]:=b[i]+1; //увеличиваем его количество
         for l:=j to n-1 do
         a[l]:=a[l+1]; //сдвигом массива удаляем его
         n:=n-1;//уменьшаем длину массива
       end;
   end;
for k:=1 to n-1 do
for t:=1 to n-1 do
if b[t]<b[t+1] then //сортируем по уменьшению встречаемости оба новых массива
   begin
    x:=b[t];
    y:=c[t];
    b[t]:=b[t+1];
    c[t]:=c[t+1];
    b[t+1]:=x ;
    c[t+1]:=y ;
   end;
writeln('Rezultat:');
for j:=1 to n do  //от первого элемента до последнего из оставшися
for k:=1 to b[j] do //выводим его столько раз, сколько оно встретилось
write(c[j],' ');
readln
end.
readln
end.

Leave a Comment

82 − 72 =